home *** CD-ROM | disk | FTP | other *** search
- DialogPtr Ex1Win,Ex2Win;
- MenuHandle myMenus[2];
- ListHandle Ex1List,Ex2List;
-
- main()
- {
- InitGraf(&thePort);
- InitFonts();
- FlushEvents(everyEvent,0);
- InitWindows();
- InitMenus();
- TEInit();
- InitDialogs(0L);
- MaxApplZone();
-
- Setup();
- InitCursor();
- while(MainEvent());
- }
-
- MainEvent()
- {
- EventRecord myEvent;
- WindowPtr whichWindow;
- DialogPtr dum;
- int j;
- register char theChar;
- unsigned char code;
- Rect r;
- GrafPtr saveport;
-
- if(WaitNextEvent(everyEvent,&myEvent,0L,0L)){
- switch (myEvent.what){
- case mouseDown:
- switch(FindWindow(myEvent.where,&whichWindow)){
- case inDesk:
- break;
- case inGoAway:
- break;
- case inMenuBar:
- return(DoCommand(MenuSelect(myEvent.where)));
- case inSysWindow:
- SystemClick(&myEvent,whichWindow);
- break;
- case inDrag:
- break;
- case inGrow:
- case inContent:
- DoMouseDown(whichWindow,&myEvent);
- break;
- default: ;
- } /* switch FindWindow */
- break;
- case activateEvt:
- dum=(DialogPtr)myEvent.message;
- if(dum==Ex1Win || dum==Ex2Win){
- LActivate(myEvent.modifiers & activeFlag,
- (dum==Ex1Win) ? Ex1List : Ex2List);
- }
- break;
- case updateEvt:
- dum=(DialogPtr)myEvent.message;
- if(dum==Ex1Win || dum==Ex2Win){
- GetPort(&saveport);
- SetPort(dum);
- BeginUpdate(dum);
- LUpdate((**((dum==Ex1Win) ? Ex1List : Ex2List)).port->visRgn,(dum==Ex1Win) ? Ex1List : Ex2List);
- EndUpdate(dum);
- SetPort(saveport);
- }
- break;
- default: ;
- } /* end of case myEvent.what */
- } /* if */
- return 1;
- }
-
- Setup()
- {
- Rect box,dB;
- Point cz;
- Handle tItem;
- int j;
-
- myMenus[0]=GetMenu(128);
- AddResMenu(myMenus[0],'DRVR');
- myMenus[1]=GetMenu(129);
- InsertMenu(myMenus[0],0);
- InsertMenu(myMenus[1],0);
- DrawMenuBar();
- Ex1Win=GetNewDialog(128,0L,(Ptr)-1L);
- SetPort(Ex1Win);
- TextFont(4);
- TextSize(9);
- Ex2Win=GetNewDialog(129,0L,(Ptr)-1L);
- GetDItem(Ex1Win,1,&j,&tItem,&box);
- SetRect(&dB,0,0,1,0);
- cz.h=50;
- cz.v=56;
- Ex1List=LNew(&box,&dB,cz,129,Ex1Win,false,false,false,true);
- GetDItem(Ex2Win,1,&j,&tItem,&box);
- SetRect(&dB,0,0,1,0);
- cz.h=box.right-box.left;
- cz.v=16;
- Ex2List=LNew(&box,&dB,cz,130,Ex2Win,false,false,false,true);
- BuildLists();
- }
-
- BuildLists()
- {
- Handle Icons[3],SmIcons;
- register int i;
- FileParam pb;
- unsigned char filnam[63],type;
- int vol,bot;
- Cell theCell;
-
- for(i=0;i<3;i++){
- Icons[i]=GetResource('ICON',i+128);
- HLock(Icons[i]);
- }
- SmIcons=GetResource('SICN',128);
- (**Ex2List).userHandle=SmIcons;
-
- GetVol(filnam,&vol);
- pb.ioCompletion=0L;
- pb.ioFDirIndex=1;
- pb.ioNamePtr=filnam;
- pb.ioVRefNum=vol;
- theCell.h=theCell.v=0;
- bot=(**(Ex1List)).dataBounds.bottom;
- while(PBGetFInfo(&pb,false)!=fnfErr){
- if((pb.ioFlAttrib & 16)!=0)type=0;
- else if(pb.ioFlFndrInfo.fdType=='APPL')type=2;
- else type=1;
- LAddRow(1,++bot,Ex1List);
- theCell.v=LAddRow(1,bot,Ex2List);
- LSetCell(*Icons[type],128,theCell,Ex1List);
- LAddToCell(filnam,(int)filnam[0]+1,theCell,Ex1List);
- LSetCell(filnam,(int)filnam[0]+1,theCell,Ex2List);
- LAddToCell(&type,1,theCell,Ex2List);
- pb.ioFDirIndex++;
- }
- LDoDraw(true,Ex1List);
- LDoDraw(true,Ex2List);
- }
-
- DoMouseDown(d,e)
- EventRecord *e;
- DialogPtr d;
- {
- GrafPtr saveport;
- ListHandle LH;
- Cell theCell;
- Rect box;
-
- if(d!=FrontWindow()){
- SelectWindow(d);
- return;
- }
- GetPort(&saveport);
- SetPort(d);
- LH=(d==Ex1Win) ? Ex1List : Ex2List;
- GlobalToLocal(&(e->where));
- box=(**LH).rView;
- box.right+=15;
- if(PtInRect(e->where,&box)){
- LClick(e->where,e->modifiers,LH);
- }
- SetPort(&saveport);
- }
-
- DoCommand(mResult)
- long mResult;
- {
- int theItem;
- char n[32];
-
- theItem=LoWord(mResult);
- switch(HiWord(mResult)) {
- case 128:
- if (theItem==1)break;
- else {
- GetItem(myMenus[0],theItem,n);
- OpenDeskAcc(&n);
- }
- break;
- case 129:
- ExitToShell();
- break;
- }
- HiliteMenu(0);
- return(1);
- }
-
-